/*
Copyright (c) 2014-2023 AscEmu Team <http://www.ascemu.org>
This file is released under the MIT license. See README-MIT for more information.
*/

#pragma once

#include "WorldConf.h"

enum CharacterErrorCodes : uint8_t
{
    E_CHAR_CREATE_IN_PROGRESS = 0x2E,
    E_CHAR_CREATE_SUCCESS = 0x2F,
    E_CHAR_CREATE_ERROR = 0x30,
    E_CHAR_CREATE_FAILED = 0x31,
    E_CHAR_CREATE_NAME_IN_USE = 0x32,
    E_CHAR_CREATE_DISABLED = 0x33,
    E_CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x34,
    E_CHAR_CREATE_SERVER_LIMIT = 0x35,
    E_CHAR_CREATE_ACCOUNT_LIMIT = 0x36,
    E_CHAR_CREATE_SERVER_QUEUE = 0x37,
    E_CHAR_CREATE_ONLY_EXISTING = 0x38,
    E_CHAR_CREATE_EXPANSION = 0x39,

#if VERSION_STRING == TBC
    E_CHAR_DELETE_IN_PROGRESS = 0x3A,
    E_CHAR_DELETE_SUCCESS = 0x3B,
    E_CHAR_DELETE_FAILED = 0x3C,
    E_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x3D,
    E_CHAR_DELETE_FAILED_GUILD_LEADER = 0x3E,
    E_CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x3F,

    E_CHAR_LOGIN_IN_PROGRESS = 0x40,
    E_CHAR_LOGIN_SUCCESS = 0x41,
    E_CHAR_LOGIN_NO_WORLD = 0x42,
    E_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x43,
    E_CHAR_LOGIN_NO_INSTANCES = 0x44,
    E_CHAR_LOGIN_FAILED = 0x45,
    E_CHAR_LOGIN_DISABLED = 0x46,
    E_CHAR_LOGIN_NO_CHARACTER = 0x47,
    E_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x48,
    E_CHAR_LOGIN_LOCKED_BY_BILLING = 0x49,

    E_CHAR_NAME_SUCCESS,
    E_CHAR_NAME_FAILURE,
    E_CHAR_NAME_NO_NAME,
    E_CHAR_NAME_TOO_SHORT,
    E_CHAR_NAME_TOO_LONG,
    E_CHAR_NAME_INVALID_CHARACTER,
    E_CHAR_NAME_MIXED_LANGUAGES,
    E_CHAR_NAME_PROFANE,
    E_CHAR_NAME_RESERVED,
    E_CHAR_NAME_INVALID_APOSTROPHE,
    E_CHAR_NAME_MULTIPLE_APOSTROPHES,
    E_CHAR_NAME_THREE_CONSECUTIVE,
    E_CHAR_NAME_INVALID_SPACE,
    E_CHAR_NAME_CONSECUTIVE_SPACES,
    E_CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS,
    E_CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END,
    E_CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME,
#elif VERSION_STRING < Mop
    E_CHAR_CREATE_EXPANSION_CLASS = 0x3A,
    E_CHAR_CREATE_LEVEL_REQUIREMENT = 0x3B,
    E_CHAR_CREATE_UNIQUE_CLASS_LIMIT = 0x3C,
    E_CHAR_CREATE_CHARACTER_IN_GUILD = 0x3D,
    E_CHAR_CREATE_RESTRICTED_RACECLASS = 0x3E,
    E_CHAR_CREATE_CHARACTER_CHOOSE_RACE = 0x3F,
    E_CHAR_CREATE_CHARACTER_ARENA_LEADER = 0x40,
    E_CHAR_CREATE_CHARACTER_DELETE_MAIL = 0x41,
    E_CHAR_CREATE_CHARACTER_SWAP_FACTION = 0x42,
    E_CHAR_CREATE_CHARACTER_RACE_ONLY = 0x43,
    E_CHAR_CREATE_CHARACTER_GOLD_LIMIT = 0x44,
    E_CHAR_CREATE_FORCE_LOGIN = 0x45,

    E_CHAR_DELETE_IN_PROGRESS = 0x46,
    E_CHAR_DELETE_SUCCESS = 0x47,
    E_CHAR_DELETE_FAILED = 0x48,
    E_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x49,
    E_CHAR_DELETE_FAILED_GUILD_LEADER = 0x4A,
    E_CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x4B,

    E_CHAR_LOGIN_IN_PROGRESS = 0x4C,
    E_CHAR_LOGIN_SUCCESS = 0x4D,
    E_CHAR_LOGIN_NO_WORLD = 0x4E,
    E_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x4F,
    E_CHAR_LOGIN_NO_INSTANCES = 0x50,
    E_CHAR_LOGIN_FAILED = 0x51,
    E_CHAR_LOGIN_DISABLED = 0x52,
    E_CHAR_LOGIN_NO_CHARACTER = 0x53,
    E_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x54,
    E_CHAR_LOGIN_LOCKED_BY_BILLING = 0x55,
    E_CHAR_LOGIN_LOCKED_BY_MOBILE_AH = 0x56,

    E_CHAR_NAME_SUCCESS = 0x57,
    E_CHAR_NAME_FAILURE = 0x58,
    E_CHAR_NAME_NO_NAME = 0x59,
    E_CHAR_NAME_TOO_SHORT = 0x5A,
    E_CHAR_NAME_TOO_LONG = 0x5B,
    E_CHAR_NAME_INVALID_CHARACTER = 0x5C,
    E_CHAR_NAME_MIXED_LANGUAGES = 0x5D,
    E_CHAR_NAME_PROFANE = 0x5E,
    E_CHAR_NAME_RESERVED = 0x5F,
    E_CHAR_NAME_INVALID_APOSTROPHE = 0x60,
    E_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x61,
    E_CHAR_NAME_THREE_CONSECUTIVE = 0x62,
    E_CHAR_NAME_INVALID_SPACE = 0x63,
    E_CHAR_NAME_CONSECUTIVE_SPACES = 0x64,
    E_CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x65,
    E_CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 0x66,
    E_CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x67,
#else
    E_CHAR_CREATE_EXPANSION_CLASS = 0x3A,
    E_CHAR_CREATE_LEVEL_REQUIREMENT = 0x3B,
    E_CHAR_CREATE_UNIQUE_CLASS_LIMIT = 0x3C,
    E_CHAR_CREATE_CHARACTER_IN_GUILD = 0x3D,
    E_CHAR_CREATE_RESTRICTED_RACECLASS = 0x3E,
    E_CHAR_CREATE_CHARACTER_CHOOSE_RACE = 0x3F,
    E_CHAR_CREATE_CHARACTER_ARENA_LEADER = 0x40,
    E_CHAR_CREATE_CHARACTER_DELETE_MAIL = 0x41,
    E_CHAR_CREATE_CHARACTER_SWAP_FACTION = 0x42,
    E_CHAR_CREATE_CHARACTER_RACE_ONLY = 0x43,
    E_CHAR_CREATE_CHARACTER_GOLD_LIMIT = 0x44,
    E_CHAR_CREATE_FORCE_LOGIN = 0x45,
    E_CHAR_CREATE_TRIAL = 0x46,

    E_CHAR_DELETE_IN_PROGRESS = 0x47,
    E_CHAR_DELETE_SUCCESS = 0x48,
    E_CHAR_DELETE_FAILED = 0x49,
    E_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x4A,
    E_CHAR_DELETE_FAILED_GUILD_LEADER = 0x4B,
    E_CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x4C,
    E_CHAR_DELETE_FAILED_HAS_MAIL = 0x4D,

    E_CHAR_LOGIN_IN_PROGRESS = 0x4E,
    E_CHAR_LOGIN_SUCCESS = 0x4F,
    E_CHAR_LOGIN_NO_WORLD = 0x50,
    E_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x51,
    E_CHAR_LOGIN_NO_INSTANCES = 0x52,
    E_CHAR_LOGIN_FAILED = 0x53,
    E_CHAR_LOGIN_DISABLED = 0x54,
    E_CHAR_LOGIN_NO_CHARACTER = 0x55,
    E_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x56,
    E_CHAR_LOGIN_LOCKED_BY_BILLING = 0x57,
    E_CHAR_LOGIN_LOCKED_BY_MOBILE_AH = 0x58,
    E_CHAR_LOGIN_TEMPORARY_GM_LOCK = 0x59,
    E_CHAR_LOGIN_LOCKED_BY_CHARACTER_UPGRADE = 0x5A,
    E_CHAR_LOGIN_LOCKED_BY_REVOKED_CHARACTER_UPGRADE = 0x5B,

    E_CHAR_NAME_SUCCESS = 0x5C,
    E_CHAR_NAME_FAILURE = 0x5D,
    E_CHAR_NAME_NO_NAME = 0x5E,
    E_CHAR_NAME_TOO_SHORT = 0x5F,
    E_CHAR_NAME_TOO_LONG = 0x60,
    E_CHAR_NAME_INVALID_CHARACTER = 0x61,
    E_CHAR_NAME_MIXED_LANGUAGES = 0x62,
    E_CHAR_NAME_PROFANE = 0x63,
    E_CHAR_NAME_RESERVED = 0x64,
    E_CHAR_NAME_INVALID_APOSTROPHE = 0x65,
    E_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x66,
    E_CHAR_NAME_THREE_CONSECUTIVE = 0x67,
    E_CHAR_NAME_INVALID_SPACE = 0x68,
    E_CHAR_NAME_CONSECUTIVE_SPACES = 0x69,
    E_CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x6A,
    E_CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 0x6B,
    E_CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x6C,
#endif
};